package org.zxyj.manage.service;

import java.awt.image.BufferedImage;
import java.io.IOException;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import org.zxyj.manage.entity.CoursePaperDetail;

public interface ICheckService 
{
	/**
     * 对答卷进行偏正校正-正面模板设置用
     * @param kmdjUrl 科目答卷路径
     * @param tempPicUrl 临时文件路径
     * @param tzdName 文件名称
     * @param start_pos_x X轴偏移量
     * @param start_pos_y Y轴偏移量
     * @param fileType 文件类型
     * @return
     * @throws IOException
     * @see   [类、类#方法、类#成员]
     * @since [产品/模块版本]
     */
    //String getBufferedResultForTempZm(String kmdjUrl,String tempPicUrl,String tzdName,int start_pos_x,int start_pos_y,String fileType) throws IOException;
    String getBufferedResultForTempZm(Map<String,Object> params) throws IOException;
    
    /**
     * 对答卷进行偏正校正-反面模板设置用
     * @param kmdjUrl 科目答卷路径
     * @param tempPicUrl 临时文件路径
     * @param tzdName 文件名称
     * @param start_pos_x X轴偏移量
     * @param start_pos_y Y轴偏移量
     * @param fileType 文件类型
     * @return
     * @throws IOException
     * @see   [类、类#方法、类#成员]
     * @since [产品/模块版本]
     */
    //String getBufferedResultForTempFm(String kmdjUrl,String tempPicUrl,String tzdName,int start_pos_x,int start_pos_y,String fileType) throws IOException;
    String getBufferedResultForTempFm(Map<String,Object> params) throws IOException;
    
    /**
     * 获取模板起始点与答卷起始点偏差值-第一遍
     * @param image 图片流
     * @return 
     * @throws IOException
     * @see   [类、类#方法、类#成员]
     * @since [产品/模块版本]
     */
    Map<String,Integer> getTempStartPointFirst(BufferedImage image) throws IOException;
    
    /**
     * 对答卷进行偏正校正-校验用
     * @param kmdjUrl 科目答卷路径
     * @param start_pos_x X轴偏移量
     * @param start_pos_y Y轴偏移量
     * @return
     * @throws IOException
     * @see   [类、类#方法、类#成员]
     * @since [产品/模块版本]
     */
    Map<String,Object> getBufferedResultForCheck(Map<String,Object> params) throws IOException;
    //Map<String,Object> getBufferedResultForCheck(String kmdjUrl,int start_pos_x,int start_pos_y) throws IOException;
    
    /**
     * 对答卷进行偏正校正-模板设置用
     * @param kmdjUrl 科目答卷路径
     * @param tempPicUrl 临时文件路径
     * @param tzdName 文件名称
     * @param start_pos_x X轴偏移量
     * @param start_pos_y Y轴偏移量
     * @param fileType 文件类型
     * @return
     * @throws IOException
     * @see   [类、类#方法、类#成员]
     * @since [产品/模块版本]
     */
    //String getBufferedResultForTemp(String kmdjUrl,String tempPicUrl,String tzdName,int start_pos_x,int start_pos_y,String fileType) throws IOException;    

    /**
     * 判断是否缺考答卷
     * @param record 答卷记录
     * @param image 图片流
     * @param p_x X轴偏移量
     * @param p_y Y轴偏移量
     * @return
     * @throws IOException
     * @see   [类、类#方法、类#成员]
     * @since [产品/模块版本]
     */
    boolean judgeQk(Map<String,Object> params) throws IOException;
    //boolean judgeQk(Map<String,Object> record,BufferedImage image,int p_x,int p_y) throws IOException;
    
    /**
     * 裁剪缺考区域
     * @param record
     * @param image
     * @param p_x
     * @param p_y
     * @return
     * @see   [类、类#方法、类#成员]
     * @since [产品/模块版本]
     */
    //Map<String,String> getQkBufferedImage(Map<String,Object> record,BufferedImage image,int p_x,int p_y);
    Map<String,String> getQkBufferedImage(Map<String,Object> params);

    /**
     * 裁剪缺考区域
     * @param record 答卷记录
     * @param image 图片流
     * @param p_x X轴偏移量
     * @param p_y Y轴偏移量
     * @return
     * @throws IOException
     * @see   [类、类#方法、类#成员]
     * @since [产品/模块版本]
     */
    //Map<String,Object> getQkBufferedImage1(Map<String,Object> record,BufferedImage image,int p_x,int p_y) throws IOException;
    Map<String,Object> getQkBufferedImage1(Map<String,Object> params) throws IOException;
    
    /**
     * 裁剪校验反面答卷
     * @param r 记录
     * @param posMap2 反面特征点信息
     * @return
     * @throws IOException
     * @see   [类、类#方法、类#成员]
     * @since [产品/模块版本]
     */
    Map<String,Integer> cropCheckFmdj(CoursePaperDetail record,Map<String,Object> posMap2) throws IOException;
    
    /**
     * 获取模板起始点与答卷起始点偏差值
     * @param image 图片流
     * @param r 记录
     * @return
     * @throws IOException
     * @see   [类、类#方法、类#成员]
     * @since [产品/模块版本]
     */
    //Map<String,Integer> getTempStartPoint(BufferedImage image,Map<String,Object> record) throws IOException;
    Map<String,Integer> getTempStartPoint(Map<String,Object> params) throws IOException;

    /**
     * 裁剪考生编号区域
     * @param r_ksbh 考号
     * @param image 图片流
     * @param p_x X轴偏移量
     * @param p_y Y轴偏移量
     * @return
     * @throws IOException
     * @see   [类、类#方法、类#成员]
     * @since [产品/模块版本]
     */
    //Map<String,Object> getKsbhBufferedImage(Map<String,Object> r_ksbh,BufferedImage image,int p_x,int p_y) throws IOException;
    Map<String,Object> getKsbhBufferedImage(Map<String,Object> params) throws IOException;

    /**
     * 查询答卷信息列表并进行校验
        * @Title: checkTemplate
        * @param @param criteria    参数
        * @return void    返回类型
        * @throws
     */
    void checkTemplate(Map<String, Object> criteria);
    
}
